home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / a / aplayerv1.3+keyfile.lha / APlayer / Files / Developer.lha / Include3.0 / Own / AccessiblePlayer.i next >
Text File  |  1995-05-27  |  10KB  |  394 lines

  1. ; AccessiblePlayer Include File
  2. ;
  3.  
  4.     IFND    APlayer_i
  5. APlayer_i    =    1
  6.  
  7.     IFND    EXEC_TYPES_I
  8.     INCLUDE    "Exec/Types.i"
  9.     ENDC
  10.  
  11.     IFND    UTILITY_TAGITEM_I
  12.     INCLUDE    "Utility/Tagitem.i"
  13.     ENDC
  14.  
  15. apVersion    =    4        ;Current Version Of APlayer
  16.  
  17. ;******************************************************************************
  18. ;* Library Offsets
  19. ;******************************************************************************
  20.  
  21. apGetTags    =    -30
  22.  
  23. ;******************************************************************************
  24. ;* Message Numbers
  25. ;******************************************************************************
  26.  
  27. MSG_NextMod    =    "NM"        ;Load Next Module
  28. MSG_NextPos    =    "NP"        ;Update Position
  29. MSG_CallBack    =    "CB"        ;Call Your CallBack Routine
  30.  
  31. ; Messages From Version 3 (Released as 1.21)
  32.  
  33. MSG_UpdateAbout    =    "UA"        ;Update About Window
  34.  
  35. ;******************************************************************************
  36. ;* Tags
  37. ;******************************************************************************
  38.  
  39. APT_TagBase        =    $80000000+"AP"
  40.  
  41.     ENUM    APT_TagBase
  42.  
  43.     EITEM    APT_RequestVersion
  44.     EITEM    APT_EarlyCheck
  45.     EITEM    APT_Check
  46.     EITEM    APT_LoadModule
  47.     EITEM    APT_FreeModule
  48.     EITEM    APT_GetError
  49.     EITEM    APT_ExtLoad
  50.     EITEM    APT_ExtFree
  51.  
  52.     EITEM    APT_InitPlayer
  53.     EITEM    APT_EndPlayer
  54.     EITEM    APT_InitSound
  55.     EITEM    APT_EndSound
  56.  
  57.     EITEM    APT_Interrupt
  58.     EITEM    APT_StartIRQ
  59.     EITEM    APT_StopIRQ
  60.  
  61.     EITEM    APT_Config        ;OBSOLETE
  62.  
  63.     EITEM    APT_PlayerName
  64.     EITEM    APT_Description
  65.  
  66.     EITEM    APT_ModuleName
  67.     EITEM    APT_Author
  68.     EITEM    APT_SubSong
  69.  
  70.     EITEM    APT_CIA            ;OBSOLETE
  71.     EITEM    APT_Pause
  72.     EITEM    APT_Volume
  73.     EITEM    APT_VolumeFunc
  74.  
  75.     EITEM    APT_FastMem        ;OBSOLETE
  76.  
  77.     EITEM    APT_GetMaxPattern
  78.     EITEM    APT_GetMaxSample
  79.     EITEM    APT_GetSongLength
  80.     EITEM    APT_GetSongPos
  81.  
  82.     EITEM    APT_Rewind
  83.     EITEM    APT_Forward
  84.     EITEM    APT_ChangeChannel
  85.     EITEM    APT_TestNextLine
  86.  
  87.     EITEM    APT_GetSample        ;OBSOLETE
  88.     EITEM    APT_PlaySample        ;OBSOLETE
  89.     EITEM    APT_RealtimePlay
  90.  
  91.     EITEM    APT_CallBack
  92.  
  93. ; Tags From Version 2 (Released as 1.1)
  94.  
  95.     EITEM    APT_Flags
  96.  
  97. ; Tags From Version 3 (Released as 1.21)
  98.  
  99.     EITEM    APT_CfgWindow
  100.  
  101. ; Tags From Version 4 (Released as 1.30)
  102.  
  103.     EITEM    APT_NewConfig
  104.  
  105.     EITEM    APT_UsedChannels
  106.     EITEM    APT_SamplesType
  107.  
  108.     EITEM    APT_GetSampleInfo
  109.     EITEM    APT_NewPlaySample
  110.  
  111.     EITEM    APT_NotePlayer
  112.     EITEM    APT_DefaultPlayerInfo
  113.     EITEM    APT_NotePlayerInfo
  114.  
  115.     EITEM    APT_InitNotePlayer
  116.     EITEM    APT_EndNotePlayer
  117.     EITEM    APT_InitNotePlayerSound
  118.     EITEM    APT_EndNotePlayerSound
  119.     EITEM    APT_PlayNote
  120.  
  121.     EITEM    APT_VirtualChangeChannel;Not Used Yet
  122.  
  123. APT_NotePlayerName      =       APT_PlayerName
  124.  
  125. ;******************************************************************************
  126. ;* APT_Flags Flags
  127. ;******************************************************************************
  128.  
  129. AFB_AnyMem    =    0
  130. AFB_UseAudio    =    1
  131.  
  132. AF_AnyMem    =    1<<AFB_AnyMem
  133. AF_UseAudio    =    1<<AFB_UseAudio
  134.  
  135. ; Flags From Version 3 (Released as 1.21)
  136.  
  137. AFB_SongEnd    =    2
  138.  
  139. AF_SongEnd    =    1<<AFB_SongEnd
  140.  
  141. ;******************************************************************************
  142. ;* APT_NotePlayerInfo & APT_NotePlayer Flags From Version 4 (Released as 1.30)
  143. ;******************************************************************************
  144.  
  145. ANFB_ChipMem        =    0    ;Only Used In APT_NotePlayerInfo
  146. ANFB_FastMem        =    1    ;Only Used In APT_NotePlayerInfo
  147. ANFB_HardwareVolume    =    2
  148. ANFB_Signed        =    3
  149. ANFB_Unsigned        =    4
  150. ANFB_Clock        =    5
  151.  
  152. ANF_ChipMem        =    1<<ANFB_ChipMem
  153. ANF_FastMem        =    1<<ANFB_FastMem
  154. ANF_HardwareVolume    =    1<<ANFB_HardwareVolume
  155. ANF_Signed        =    1<<ANFB_Signed
  156. ANF_Unsigned        =    1<<ANFB_Unsigned
  157. ANF_Clock        =    1<<ANFB_Clock
  158.  
  159. ;******************************************************************************
  160. ;* APT_SamplesType Types From Version 4 (Released as 1.30)
  161. ;******************************************************************************
  162.  
  163. ST_Signed        =    1
  164. ST_Unsigned        =    2
  165.  
  166. ;******************************************************************************
  167. ;* Global Data Structure
  168. ;******************************************************************************
  169.  
  170.     STRUCTURE APlayerGlobal,0
  171.     ULONG    APG_FileSize
  172.     UWORD    APG_Tune
  173.     UWORD    APG_Reserved0
  174.     UBYTE    APG_MaxVolume
  175.     UBYTE    APG_Tempo
  176.     STRUCT    APG_Reserved1,40
  177.  
  178.     FPTR    APG_AllocMem
  179.     FPTR    APG_FreeMem
  180.  
  181.     FPTR    APG_GetFilename
  182.     FPTR    APG_FindName
  183.  
  184.     FPTR    APG_CheckLoad
  185.     FPTR    APG_PartialLoad
  186.     FPTR    APG_Load
  187.  
  188.     FPTR    APG_DupOpen
  189.     FPTR    APG_DupClose
  190.     FPTR    APG_Seek
  191.  
  192.     FPTR    APG_PlaySample        ;OBSOLETE
  193.  
  194.     FPTR    APG_CalcVolume
  195.     FPTR    APG_WaitDMA
  196.     FPTR    APG_SendMsg
  197.     FPTR    APG_SetTimer
  198.  
  199.     FPTR    APG_NewProcess
  200.  
  201.     FPTR    APG_OpenWindow
  202.     FPTR    APG_WaitMsg
  203.     FPTR    APG_Reply
  204.     FPTR    APG_ActivateGadget
  205.     FPTR    APG_GetGadAdr
  206.     FPTR    APG_Flash
  207.  
  208.     FPTR    APG_AllocChannels
  209.     FPTR    APG_FreeChannels
  210.  
  211. ; Data/Functions From Version 2 (Released as 1.1)
  212.  
  213.     FPTR    APG_CutSuffix
  214.  
  215. ; Data/Functions From Version 3 (Released as 1.21)
  216.  
  217.     FPTR    APG_OpenFile
  218.     FPTR    APG_CloseFile
  219.     FPTR    APG_DirRequester
  220.     FPTR    APG_FileRequester
  221.     FPTR    APG_UpdateGadgets
  222.  
  223.     FPTR    APG_CalcTempo
  224.  
  225. ; Data/Functions From Version 4 (Released as 1.30)
  226.  
  227.     APTR    APG_IntBase        ;Intuition.library
  228.     APTR    APG_GfxBase        ;Graphics.library
  229.     APTR    APG_UtiBase        ;Utility.library
  230.     APTR    APG_ReqBase        ;Reqtools.library
  231.  
  232.     ULONG    APG_Clock
  233.     ULONG    APG_MixingRate
  234.  
  235.     APTR    APG_SampleInfo
  236.     APTR    APG_NullSample
  237.  
  238.     APTR    APG_ChannelInfo
  239.     FPTR    APG_NotePlayer
  240.  
  241.     FPTR    APG_NewPlaySample
  242.  
  243.     FPTR    APG_GetMaxVolume
  244.  
  245.     UWORD    APG_MaxChannels
  246.     LABEL    APlayerGlobal_SIZEOF
  247.  
  248. ;******************************************************************************
  249. ;* Sample Info Structure From Version 4 (Released as 1.30)
  250. ;******************************************************************************
  251.  
  252.     STRUCTURE SampleInfo,0
  253.     UBYTE    SI_Type            ;See below for the types.
  254.     UBYTE    SI_Flags        ;See below for the flags.
  255.     APTR    SI_Name            ;This should be a pointer to a
  256.                     ;NULL-terminated string with the name
  257.                     ;of the sample here.
  258.     APTR    SI_Address        ;Set this to the start address of the
  259.                     ;sample. Zero means no sample.
  260.     LONG    SI_RealLength        ;Set this to the length of the sample
  261.                     ;in bytes.
  262.     LONG    SI_Length        ;This should be the length of the
  263.                     ;sample in 8 bits. That means if you
  264.                     ;have a 16 bit sample, this should be
  265.                     ;the half of the SI_RealLength size.
  266.     APTR    SI_LoopStart        ;Set this to the address where to loop
  267.                     ;from. If no loop, set this to the
  268.                     ;start address of the sample.
  269.     LONG    SI_LoopLength        ;This should indicate how many bytes
  270.                     ;of the sample to be looped. Zero
  271.                     ;means no loop.
  272.     UBYTE    SI_Volume        ;Set this to the volume of the sample.
  273.     UBYTE    SI_Finetune        ;This is a byte between -8 and +7.
  274.     UBYTE    SI_SampleBit        ;Set this to the bit size of the sample
  275.     UBYTE    SI_Pad
  276.     LABEL    SampleInfo_SIZEOF
  277.  
  278. ;******************************************************************************
  279. ;* SampleInfo Types From Version 4 (Released as 1.30)
  280. ;******************************************************************************
  281.  
  282. SIT_Sample        =    0
  283. SIT_AM            =    1
  284. SIT_FM            =    2
  285. SIT_Hybrid        =    3
  286. SIT_AdLib        =    4
  287.  
  288. ;******************************************************************************
  289. ;* SampleInfo Flags From Version 4 (Released as 1.30)
  290. ;******************************************************************************
  291.  
  292. SIFB_Unsigned        =    0    ;Set this if the sample is unsigned.
  293.  
  294. SIF_Unsigned        =    1<<SIFB_Unsigned
  295.  
  296. ;******************************************************************************
  297. ;* NotePlayer Channel Structure From Version 4 (Released as 1.30)
  298. ;******************************************************************************
  299.  
  300.     STRUCTURE NPChannel,0
  301.     UBYTE    NPC_Flags
  302.     UBYTE    NPC_Reserved0
  303.     APTR    NPC_Start
  304.     ULONG    NPC_Length
  305.     APTR    NPC_LoopStart
  306.     ULONG    NPC_LoopLength
  307.     UWORD    NPC_Period
  308.     UWORD    NPC_Volume
  309.     ULONG    NPC_Reserved1
  310.     ULONG    NPC_Reserved2
  311.     UWORD    NPC_Reserved3
  312.     LABEL    NPChannel_SIZEOF
  313.  
  314. ;******************************************************************************
  315. ;* NotePlayer Channel Flags From Version 4 (Released as 1.30)
  316. ;******************************************************************************
  317.  
  318. NPCFB_Sample        =    0
  319. NPCFB_Loop        =    1
  320. NPCFB_Period        =    2
  321. NPCFB_QuadroPeriod    =    3
  322. NPCFB_Volume        =    4
  323.  
  324. NPCF_Sample        =    1<<NPCFB_Sample
  325. NPCF_Loop        =    1<<NPCFB_Loop
  326. NPCF_Period        =    1<<NPCFB_Period
  327. NPCF_QuadroPeriod    =    1<<NPCFB_QuadroPeriod
  328. NPCF_Volume        =    1<<NPCFB_Volume
  329.  
  330. ;******************************************************************************
  331. ;* Config Structure From Version 4 (Released as 1.30)
  332. ;******************************************************************************
  333.  
  334.     STRUCTURE ConfigStruct,0
  335.     FPTR    CS_GadUpdate        ;Pointer to a function that will fill
  336.                     ;out a tag list with the new values.
  337.                     ;It should return a pointer to the tag
  338.                     ;lists in A0.
  339.     FPTR    CS_Exit            ;Pointer to a Exit function.
  340.     UWORD    CS_Width        ;Window Width.
  341.     UWORD    CS_Height        ;Window Height.
  342.     APTR    CS_Title        ;Pointer To Window Title.
  343.     ULONG    CS_IDCMP        ;Extra IDCMPs. These IDCMPs will
  344.                     ;always be set: GADGETUP, GADGETDOWN,
  345.                     ;VANILLAKEY and MENUPICK.
  346.     APTR    CS_PrefName        ;Pointer to a preference filename
  347.                     ;with only the "Player" or "NotePlayer"
  348.                     ;path.
  349.     APTR    CS_PrefData        ;Pointer to your preference data.
  350.     APTR    CS_DefPrefData        ;Pointer to your default pref. data.
  351.     ULONG    CS_PrefSize        ;Number of bytes in your preferences.
  352.  
  353.     UWORD    CS_GadgetNum        ;Number of gadgets you want - 1.
  354.                     ;Then the Gadget Structure if any
  355.                     ;gadgets. See macro below.
  356.  
  357.     UWORD    CS_BevelNum        ;Number of bevel boxes you want - 1.
  358.                     ;Then the Bevel Box Structure if any
  359.                     ;boxes. See macro below.
  360.  
  361.     BOOL    CS_Text            ;Text strings boolean. Set this if you
  362.                     ;want some text else clear it.
  363.                     ;Then the normal IntuiText structures
  364.                     ;linked together.
  365.  
  366. ;******************************************************************************
  367. ;* This Macro helps you to make Gadgets in your config window
  368. ;******************************************************************************
  369.  
  370. GADSTR    MACRO
  371.     dc.w    \2,\3,\4,\5,\6        ;X, Y, Width, Height, ID
  372.     dc.l    \7,\8,\9        ;Flags, Text, Tags
  373.     dc.w    \1            ;Kind
  374.     ENDM
  375.  
  376. ;******************************************************************************
  377. ;* This Macro helps you to make Bevel Boxes in your config window
  378. ;******************************************************************************
  379.  
  380. BEVSTR    MACRO
  381.     dc.w    \1,\2,\3,\4        ;X, Y, Width, Height
  382.     dc.w    \5            ;Normal (FALSE) Or Recessed (TRUE)
  383.     ENDM
  384.  
  385. ;******************************************************************************
  386. ;* Special Gadget Kinds From Version 3 (Released as 1.21)
  387. ;******************************************************************************
  388.  
  389. DISK_KIND    =    800        ;Will Make A Disk Gadget
  390. UPARROW_KIND    =    801        ;Up Arrow Image Button
  391. DOWNARROW_KIND    =    802        ;Down Arrow Image Button
  392.  
  393.     ENDC
  394.